import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入一个数字: ");
        int number = scanner.nextInt();

        if (isNarcissisticNumber(number)) {
            System.out.println(number + " 是水仙花数");
        } else {
            System.out.println(number + " 不是水仙花数");
        }
    }
    // 判断是否是水仙花数的函数
    private static boolean isNarcissisticNumber(int num) {
        int originalNumber = num;
        int n = countDigits(num);  // 次方数
        int sum = 0;  //  计算和

        while (num > 0) {
            // 接收num 取余后的数字 从个 十 百 依次取
            int digit = num % 10;
            // 将 每位数的 的n次方 累加
            sum += Math.pow(digit, n);
            // 计算之后 抛弃最后一位数
            num /= 10;
        }

        return sum == originalNumber;
    }

    // 计算数字的位数(统计次方数)
    private static int countDigits(int num) {
        int count = 0;
        while (num > 0) {
            num /= 10;
            count++;
        }
        return count;
    }
}
